#ifndef _SEMAPHORE_H_
#define _SEMAPHORE_H_

typedef struct m_sem_t {
    int value;
    pthread_mutex_t mutex;
    pthread_cond_t cond;
} m_sem_t;

void sem_init(m_sem_t*, int);
void sem_wait(m_sem_t*);
void sem_post(m_sem_t*);

#endif
